
#ifndef UI_CADTOOLBAR_H
#define UI_CADTOOLBAR_H

class WF_ActionHandler;

#include "ui_cadtoolbararcs.h"
#include "ui_cadtoolbarcircles.h"
#include "ui_cadtoolbardim.h"
#include "ui_cadtoolbarellipses.h"
#include "ui_cadtoolbarinfo.h"
#include "ui_cadtoolbarlines.h"
#include "ui_cadtoolbarmain.h"
#include "ui_cadtoolbarmodify.h"
#include "ui_cadtoolbarpoints.h"
#include "ui_cadtoolbarpolylines.h"
#include "ui_cadtoolbarselect.h"
#include "ui_cadtoolbarsnap.h"
#include "ui_cadtoolbarsplines.h"
#include "ui_ui_cadtoolbar.h"
#include "..\gui_export.h"

class GUI_EXPORT UI_CadToolBar : public QWidget, public Ui::UI_CadToolBar
{
    Q_OBJECT

public:
    UI_CadToolBar(QWidget* parent = 0, const char* name = 0, Qt::WindowFlags fl = 0);
    ~UI_CadToolBar();

    virtual WF_ActionHandler * getActionHandler();

public slots:
    virtual void back();
    virtual void forceNext();
    virtual void mouseReleaseEvent( QMouseEvent * e );
    virtual void contextMenuEvent( QContextMenuEvent * e );
    virtual void createSubToolBars( WF_ActionHandler * ah );
    virtual void showToolBar( int id );
    virtual void showToolBarMain();
    virtual void showToolBarPoints();
    virtual void showToolBarLines();
    virtual void showToolBarArcs();
    virtual void showToolBarEllipses();
    virtual void showToolBarSplines();
    virtual void showToolBarPolylines();
    virtual void showToolBarCircles();
    virtual void showToolBarInfo();
    virtual void showToolBarModify();
    virtual void showToolBarSnap();
    virtual void showToolBarDim();
    virtual void showToolBarSelect();
    virtual void showToolBarSelect( PF_ActionInterface * selectAction, int nextAction );

signals:
    void signalBack();
    void signalNext();

protected:
    UI_CadToolBarSplines* tbSplines;
    UI_CadToolBarInfo* tbInfo;
    WF_ActionHandler* actionHandler;
    QWidget* currentTb;
    UI_CadToolBarMain* tbMain;
    UI_CadToolBarDim* tbDim;
    UI_CadToolBarLines* tbLines;
    UI_CadToolBarPoints* tbPoints;
    UI_CadToolBarEllipses* tbEllipses;
    UI_CadToolBarArcs* tbArcs;
    UI_CadToolBarModify* tbModify;
    UI_CadToolBarCircles* tbCircles;
    UI_CadToolBarSnap* tbSnap;
    UI_CadToolBarSelect* tbSelect;
    UI_CadToolBarPolylines* tbPolylines;

protected slots:
    virtual void languageChange();

private:
    void init();

};

#endif // QG_CADTOOLBAR_H
